Harmony search

In computer science and operations research, harmony search (HS) is a phenomenon-mimicking algorithm (also known as metaheuristic algorithm, soft computing algorithm or evolutionary algorithm) inspired by the improvisation process of musicians. In the HS algorithm, each musician (= decision variable) plays (= generates) a note (= a value) for finding a best harmony (= global optimum) all together. The Harmony Search algorithm has the following merits:

Contents

Basic Harmony Search Algorithm

Harmony search tries to find a vector \mathbf{x} which optimizes (minimizes or maximizes) a certain objective function.

The algorithm has the following steps:

Step 1: Generate random vectors (\mathbf{x}^1, \ldots, \mathbf{x}^{hms}) as many as hms (harmony memory size), then store them in harmony memory (HM).


\mathbf{HM} =
\begin{bmatrix}
x^1_1 & \cdots & x^1_n & | & f(\mathbf{x}^1)\\
\vdots & \ddots & \vdots & | & \vdots\\
x^{hms}_1 & \cdots & x^{hms}_n & | & f(\mathbf{x}^{hms})\\
\end{bmatrix}.

Step 2: Generate a new vector \mathbf{x}'. For each component x^'_i,

Step 3: Perform additional work if the value in Step 2 came from HM.

Step 4: If \mathbf{x}^' is better than the worst vector \mathbf{x}^{Worst} in HM, replace \mathbf{x}^{Worst} with \mathbf{x}'.

Step 5: Repeat from Step 2 to Step 4 until termination criterion (e.g. maximum iterations) is satisfied.

The parameters of the algorithm are

It is possible to vary the parameter values as the search progresses, which gives an effect similar to simulated annealing.

Parameter-setting-free researches have been also performed. In the researches, algorithm users do not need tedious parameter setting process.

Other Related Algorithms

Harmony search lies in the fields of:

Other evolutionary computing methods include:

Other metaheuristic methods include:

Other stochastic methods include:

References

General Information

Theory of Harmony Search

Applications in Computer Science

Applications in Engineering

Source Codes